﻿using Microsoft.Xna.Framework.Content.Pipeline.Graphics;
using Microsoft.Xna.Framework.Content.Pipeline.Processors;
using Microsoft.Xna.Framework.Graphics;

namespace Deferred.Pipeline
{
    public class DeferredModelMeshPartContent
    {
        public int TriangleCount;
        public int VertexCount;
        public int VertexStride;

        public string TextureName;
        public string NormalMapName;
        public string SpecularMapName;

        // These properties are not the same type as their equivalents in the
        // runtime CustomModel! Here, we are using design time managed classes,
        // while the runtime CustomModel uses actual GPU types. The Content
        // Pipeline knows about the relationship between the design time and
        // runtime types (thanks to the ContentTypeWriter.GetRuntimeType method),
        // so it can automatically translate one to the other. At design time
        // we can use things like VertexElement[], VertexBufferContent,
        // IndexCollection and MaterialContent, but when the serializer reads
        // this data back at runtime, it will load into the corresponding
        // VertexDeclaration, VertexBuffer, IndexBuffer, and Effect classes.
        public VertexElement[] VertexElements;
        public VertexBufferContent VertexBufferContent;
        public IndexCollection IndexCollection;
    }
}
